<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 箭头函数的this
      // 箭头函数的this是在定义函数的时候绑定，而不是在执行函数的时候绑定
      // 箭头函数中，this指向的固定化，并不是因为箭头函数内部有绑定this的机制,实际原因是箭头函数根本没有自己的this，导致内部的this就是外层代码的块的this,正是因为没有this,所以它不能用作构造函数

      // 练习一
      var x = 11;
      var obj = {
        x: 22,
        say: () => {
          console.log(this.x);
        },
      };
      obj.say(); // 11 指向父级的上下文

      // 练习二
      var obj1 = {
        birth: 1990,
        getAge: function () {
          var b = this.birth; // 指向obj1
          var fn = () => new Date().getFullYear() - this.birth; //this指向obj1
          return fn();
        },
      };
      obj1.getAge();
    </script>
  </body>
</html>
